#ifndef _EPD__H_
#define _EPD__H_

#include "stdint.h"


#define USE_FORT_FLASH 1

#if USE_FORT_FLASH == 1
#define SHOW_CHAR_INTERVAL  2
#endif

enum FORT_SIZE
{
	FORT_16 = 16,
	FORT_24 = 24,
	FORT_32 = 32,
};

enum EPD_MODE
{
	UNINIT,	//EPD仍未进行任何初始化(内部使用)
	MIX,  	//三次局刷一次全刷(推荐)
	PART, 	//全部进行局刷(多次刷新会产生重影)
	FULL, 	//全部进行全刷(效果最好但是速度慢)
	GARY,		//自定义波形实现四阶灰度(刷新速度约等于全刷)
};


void EPD_INIT(enum EPD_MODE mode);

void EPD_REFRESH();

void EPD_CLEAR();

void EPD_SLEEP();

void EPD_SHOW_PICTURE(uint16_t x,uint16_t y,uint16_t length,uint16_t height,uint8_t* pic);

void EPD_SHOW_STRING(uint16_t x,uint16_t y,enum FORT_SIZE size,char* string);

void SHOW_CHAR_OVERFLOW_CHAR_EVENT(uint16_t x,uint16_t y,enum FORT_SIZE size,uint32_t unicode,uint8_t bit);


//开发测试函数
void GARY_TEST(void);
void develop_test();


#endif